package com.zzw.bridge.business.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zzw.bridge.business.dto.NoPassReportDTO;
import com.zzw.bridge.business.dto.ReportQueryDTO;
import com.zzw.bridge.business.dto.ReportStatisticDTO;
import com.zzw.bridge.business.dto.ZzwPierColumnReportDTO;
import com.zzw.bridge.business.dto.ZzwPierProjectDTO;
import com.zzw.bridge.business.vo.ReportStatisticVo;
import com.zzw.bridge.business.vo.ZzwPierColumnReportHisVo;
import com.zzw.bridge.business.vo.ZzwPierColumnReportInfoVo;
import com.zzw.bridge.business.vo.ZzwPierColumnReportVo;
import com.zzw.bridge.common.entitys.business.ZzwPierColumnReportEntity;

import javax.servlet.http.HttpServletRequest;

/**
 * 墩柱报告信息表
 *
 * @author XiaoJie
 * @email
 * @date 2025-05-16 11:44:33
 */
public interface ZzwPierColumnReportService extends IService<ZzwPierColumnReportEntity> {

    /**
     * 编辑报表
     *
     * @param dto {@link ZzwPierColumnReportDTO}
     * @return {@link String}
     */
    String editProject(ZzwPierColumnReportDTO dto);

    /**
     *
     * @param reportId "条件"
     * @return {@link Object}
     */
    ZzwPierColumnReportInfoVo queryReportInfo(String reportId);

    /**
     * 报告统计
     *
     * @param dto {@link ReportStatisticDTO}
     * @return {@link ReportStatisticVo}
     */
    ReportStatisticVo reportStatistics(ReportStatisticDTO dto, HttpServletRequest request);

    /**
     * 分页查历史数据
     *
     * @param dto {@link ReportQueryDTO}
     * @return {@link Page<ZzwPierColumnReportHisVo>}
     */
    Page<ZzwPierColumnReportHisVo> queryHisPage(ReportQueryDTO dto);

    /**
     * 分页查询
     *
     * @param dto {@link NoPassReportDTO}
     * @param request {@link HttpServletRequest}
     * @return    {@link Page<ZzwPierColumnReportVo>}
     */
    Page<ZzwPierColumnReportVo> queryNoPassReportPage(NoPassReportDTO dto, HttpServletRequest request);

    /**
     * 删除报告
     *
     * @param reportId "reportId"
     * @return {@link String}
     */
    String delete(String reportId);
}

